nethackfandomcom-20200214-history
Source:NetHack 3.2.0/pcconf.h
Below is the full text to pcconf.h from the source code of NetHack 3.2.0. To link to a particular line, write [[NetHack 3.2.0/pcconf.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)pcconf.h 3.2 95/10/11 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PCCONF_H 6. #define PCCONF_H 7. 8. #define MICRO /* always define this! */ 9. 10. #ifdef MSDOS /* some of this material is MS-DOS specific */ 11. 12. /* 13. * Automatic Defines: 14. * 15. * __GO32__ is defined automatically by the djgpp port of gcc. 16. * __DJGPP__ is defined automatically by djgpp version 2 and above. 17. * _MSC_VER is defined automatically by Microsoft C. 18. * __BORLANDC__ is defined automatically by Borland C. 19. */ 20. 21. /* 22. * The following options are somewhat configurable depending on 23. * your compiler. 24. */ 25. 26. /* 27. * For pre-V7.0 Microsoft Compilers only, manually define OVERLAY here. 28. */ 29. 30. /*#define OVERLAY /* Manual overlay definition (MSC 6.0ax only) */ 31. 32. 33. # ifndef __GO32__ 34. # define MFLOPPY /* Support for floppy drives and ramdisks by dgk */ 35. # endif 36. 37. # define SHELL /* via exec of COMMAND.COM */ 38. 39. /* 40. * Music option 41. */ 42. 43. # ifdef __BORLANDC__ 44. #define PCMUSIC /* enable very basic pc speaker music notes */ 45. # endif 46. 47. /* 48. * Screen control options 49. * 50. * You may uncomment: 51. * ANSI_DEFAULT 52. * or TERMLIB 53. * or ANSI_DEFAULT and TERMLIB 54. * or NO_TERMS 55. */ 56. 57. /* # define TERMLIB /* enable use of termcap file /etc/termcap */ 58. /* or ./termcap for MSDOS (SAC) */ 59. /* compile and link in Fred Fish's termcap library, */ 60. /* enclosed in TERMCAP.ARC, to use this */ 61. 62. /* # define ANSI_DEFAULT /* allows NetHack to run without a ./termcap */ 63. 64. # define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ 65. /* screen routines into the .exe */ 66. 67. # ifdef NO_TERMS /* if NO_TERMS select one screen package below */ 68. #define SCREEN_BIOS /* Use bios calls for all screen control */ 69. /* #define SCREEN_DJGPPFAST /* Use djgpp fast screen routines */ 70. # endif 71. 72. 73. /* # define PC9800 /* Allows NetHack to run on NEC PC-9800 machines */ 74. /* Yamamoto Keizo */ 75. 76. 77. /* 78. * PC video hardware support options (for graphical tile support) 79. * 80. * You may uncomment any/all of the options below. 81. * 82. */ 83. # if (defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST)) && !defined(PC9800) 84. # ifdef USE_TILES 85. #define SCREEN_VGA /* Include VGA graphics routines in the build */ 86. # endif 87. # endif 88. 89. 90. # define RANDOM /* have Berkeley random(3) */ 91. 92. # define MAIL /* Allows for fake mail daemon to deliver mail */ 93. /* in the MSDOS version. (For AMIGA MAIL see */ 94. /* amiconf.h). In the future this will be the */ 95. /* hook for mail reader implementation. */ 96. 97. /* The following is needed for prototypes of certain functions */ 98. 99. #if defined(_MSC_VER) || defined(__BORLANDC__) 100. #include /* Provides prototypes of exit(), spawn() */ 101. #endif 102. 103. #if defined(__BORLANDC__) && defined(STRNCMPI) 104. #include /* Provides prototypes of strncmpi(), etc. */ 105. #endif 106. 107. #if defined(__DJGPP__) 108. #define _NAIVE_DOS_REGS 109. #include 110. #include /* Provides prototypes of strncmpi(), etc. */ 111. #endif 112. 113. /* 114. * On the VMS and unix, this option controls whether a delay is done by 115. * the clock, or whether it is done by excess output. On the PC, however, 116. * there is always a clock to use for the delay. The TIMED_DELAY option 117. * on MSDOS (without the termcap routines) is used to determine whether to 118. * include the delay routines in the code (and thus, provides a compile time 119. * method to turn off napping for visual effect). However, it is also used 120. * in the music code to wait between different notes. So it is needed in that 121. * case as well. 122. 123. * Whereas on the VMS and unix, flags.nap is a run-time option controlling 124. * whether there is a delay by clock or by excess output, on MSDOS it is 125. * simply a flag to turn on or off napping for visual effects at run-time. 126. */ 127. 128. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 129. 130. #ifdef PCMUSIC 131. #define TIMED_DELAY /* need it anyway */ 132. #endif 133. 134. 135. #endif /* MSDOS configuration stuff */ 136. 137. 138. #define PATHLEN 64 /* maximum pathlength */ 139. #define FILENAME 80 /* maximum filename length (conservative) */ 140. #ifndef MICRO_H 141. #include "micro.h" /* contains necessary externs for os_name.c */ 142. #endif 143. 144. /* 145. * The remaining code shouldn't need modification. 146. */ 147. 148. #ifndef SYSTEM_H 149. #include "system.h" 150. #endif 151. 152. # ifdef MSDOS 153. # ifndef EXEPATH 154. #define EXEPATH /* HACKDIR is .exe location if not explicitly defined */ 155. # endif 156. # endif 157. 158. # if defined(_MSC_VER) && (_MSC_VER >= 700) 159. # ifndef MOVERLAY 160. #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ 161. # endif 162. # endif 163. 164. /* __OVERLAY__ is automatically defined by Borland C if overlay option is on */ 165. # if defined(__BORLANDC__) && defined(__OVERLAY__) 166. # ifndef VROOMM 167. #define VROOMM /* Borland's VROOMM overlay system */ 168. # endif 169. # endif 170. 171. # if defined (__BORLANDC__) && !defined(STKSIZ) 172. #define STKSIZ 5*1024 /* Use a default of 5K stack for Borland C */ 173. /* This macro is used in any file that contains */ 174. /* a main() function. */ 175. # endif 176. 177. #ifndef index 178. # define index strchr 179. #endif 180. #ifndef rindex 181. # define rindex strrchr 182. #endif 183. 184. #ifndef AMIGA 185. #include 186. #endif 187. 188. #ifdef RANDOM 189. /* Use the high quality random number routines. */ 190. # define Rand() random() 191. #else 192. # define Rand() rand() 193. #endif 194. 195. #ifndef TOS 196. # define FCMASK 0660 /* file creation mask */ 197. #endif 198. 199. #include 200. 201. #define exit msexit /* do chdir first */ 202. 203. #ifndef REDO 204. # undef Getchar 205. # define Getchar nhgetch 206. #endif 207. 208. #ifdef MSDOS 209. # define TEXTCOLOR /* */ 210. # define PORT_HELP "msdoshlp.txt" /* msdos port specific help file */ 211. #endif 212. 213. 214. /* Sanity check, do not modify these blocks. */ 215. 216. /* OVERLAY must be defined with MOVERLAY or VROOMM */ 217. #if defined(MOVERLAY) || defined(VROOMM) 218. # ifndef OVERLAY 219. # define OVERLAY 220. # endif 221. #endif 222. 223. #if defined(OVERLAY) && !defined(MOVERLAY) && !defined(VROOMM) 224. #define USE_TRAMPOLI 225. #endif 226. 227. #if defined(MSDOS) && defined(NO_TERMS) 228. # ifdef TERMLIB 229. # ifdef _MSC_VER 230. # pragma message("Warning -- TERMLIB defined with NO_TERMS in pcconf.h") 231. # pragma message(" Forcing undef of TERMLIB") 232. # endif 233. #undef TERMLIB 234. # endif 235. # ifdef ANSI_DEFAULT 236. # ifdef _MSC_VER 237. # pragma message("Warning -- ANSI_DEFAULT defined with NO_TERMS in pcconf.h") 238. # pragma message(" Forcing undef of ANSI_DEFAULT") 239. # endif 240. #undef ANSI_DEFAULT 241. # endif 242. /* only one screen package is allowed */ 243. # if defined(SCREEN_BIOS) && defined(SCREEN_DJGPPFAST) 244. # ifdef _MSC_VER 245. /* Microsoft C compiler */ 246. # pragma message("Warning -- More than one screen package defined in pcconf.h") 247. # endif 248. # if defined(_MSC_VER) || defined(__BORLANDC__) 249. # if defined(SCREEN_DJGPPFAST) 250. # ifdef _MSC_VER 251. # pragma message(" Forcing undef of SCREEN_DJGPPFAST") 252. # endif 253. #undef SCREEN_DJGPPFAST /* Can't use djgpp fast with other compilers anyway */ 254. # endif 255. # else 256. /* djgpp C compiler */ 257. # if defined(SCREEN_BIOS) 258. #undef SCREEN_BIOS 259. # endif 260. # endif 261. # endif 262. # define ASCIIGRAPH 263. # ifdef TEXTCOLOR 264. # define VIDEOSHADES 265. # endif 266. /* SCREEN_8514, SCREEN_VESA are only placeholders presently - sub VGA instead */ 267. # if defined(SCREEN_8514) || defined(SCREEN_VESA) 268. # undef SCREEN_8514 269. # undef SCREEN_VESA 270. # define SCREEN_VGA 271. # endif 272. /* Graphical tile sanity checks */ 273. # ifdef SCREEN_VGA 274. # define SIMULATE_CURSOR 275. # define POSITIONBAR 276. /* Select appropriate tile file format, and map size */ 277. # define PLANAR_FILE 278. # define SMALL_MAP 279. # endif 280. #endif /* End of sanity check block */ 281. 282. #if defined(MSDOS) && defined(DLB) 283. #define FILENAME_CMP stricmp /* case insensitive */ 284. #endif 285. 286. #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ 287. #pragma warning(disable:4131) 288. #endif 289. 290. #ifdef TIMED_DELAY 291. # ifdef __DJGPP__ 292. # define msleep(k) (void) usleep((k)*1000) 293. # endif 294. # ifdef __BORLANDC__ 295. # define msleep(k) delay(k) 296. # endif 297. #endif 298. 299. #endif /* PCCONF_H */ pcconf.h